]> dgit.raspbian.org Git - gnome-shell.git/commit
screenShield: Fix pointer showing on motion
authorCarlos Garnacho <carlosg@gnome.org>
Sun, 29 Jun 2025 09:35:24 +0000 (11:35 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sun, 29 Jun 2025 14:26:59 +0000 (16:26 +0200)
commit7b804eda9c2a62de9dcaf02b64186bac42877656
tree59938f4ec2a9c6f6364f432dd4efa3c8876e706b
parent41c41f9c8930619968b1611334b04f2f4b4b3e6a
screenShield: Fix pointer showing on motion

As an additional side effect of switching to the cursor visibility
inhibition API in the cursor tracker, there is no longer this
infighting in Mutter where pointer motion tries to set pointer
visibility on (since it's the last device used), and other places
wanting to inhibit it, such as the screenshield.

This resulted on the cursor wanting to show by itself, and somehow
trigger captured motion events on the ClutterStage. This no longer
happens, which results in the pointer staying hidden, seat unfocus
remaining uninhibited, and no motion events being sent in (since
the pointer device now does remain unfocused).

Fix this by:
- Setting a seat unfocus inhibition, so the pointer triggers motion
  and focus despite being hidden
- Connecting to captured events on the screen lock group widget,
  since captured events will respect the existing grab

This results in pointer motion again resulting on the cursor being
shown, when waking up the lockscreen.

Fixes: 91c6366e0 ("Adjust to cursor tracker visibility API changes")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3781>
js/ui/screenShield.js